C1FlexGrid控件具有展示、编辑、格式化、组织、总结以及打印数据等非常友好的功能。
本文着重介绍C1FlexGrid for Winforms其他的实用性应用,指导用户如何计算选择单元格区域的合计值,并且展示在列头。
本文会使用到C1FlexGrid的SelChange和AfterSelChange事件。
计算合计值
在C1FlexGrid的SelChange事件里,我们需要获取列的Caption和Index,并且循环此列选择单元格的个数。因此,为将来计算选择内容的合计值做准备。
代码参考:
private void c1FlexGrid1_SelChange(object sender, EventArgs e) { total = null; //Get the respective Column's Caption & Index if (col_index == -1) col_name = c1FlexGrid1.Cols[c1FlexGrid1.Col].Caption; else if (c1FlexGrid1.Col != col_index) { c1FlexGrid1.Cols[col_index].Caption = col_name; col_name = c1FlexGrid1.Cols[c1FlexGrid1.Col].Caption; } col_index = c1FlexGrid1.Col; double sum_of_cells = 0; //Calculate the Sum of the Selection if (c1FlexGrid1.Cols[c1FlexGrid1.Col].DataType != System.Type.GetType("System.String")) { for (int i = c1FlexGrid1.Row; i <= c1FlexGrid1.RowSel; i++) sum_of_cells = sum_of_cells + Convert.ToDouble(c1FlexGrid1); } else MessageBox.Show("String Column!!!!!!!"); total = col_name + " - SUM : " + sum_of_cells; }
展示合计值
在计算完合计后,我们使用AfterSelChange事件在列头展示合计值。
将结果输出到列的Caption,代码参考如下:
private void c1FlexGrid1_AfterSelChange(object sender, C1.Win.C1FlexGrid.RangeEventArgs e) { //Display the Sum in column Header c1FlexGrid1.Cols[c1FlexGrid1.Col].Caption = total; }
如下图片能够帮助你理解这个功能。
本文的示例下载地址:
Win_Flex_SumInHeader_CS1.zip (277.66 kb)
C1FlexGrid控件下载地址:/developer/componentone-winform
如果你对此存在问题,可以前往我们的技术社区:http://gcdn.grapecity.com.cn/